# -*-coding:utf-8-*-
import re

"""
    re.I    使匹配对大小写不敏感
    re.L    做本地化识别（locale-aware）匹配
    re.M    多行匹配，影响 ^ 和 $
    re.S    使 . 匹配包括换行在内的所有字符
    re.U    根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B
"""

html = '<html><body><div>1</div><div>2</div><div>3</div></body></html>'

# 查找到第一个匹配的就停止
r1 = re.search(r'<div>(\d)</div>', html, flags=re.I)
print(r1.group(0))  # 返回<div>1</div>

# 查找所有匹配的结果
r2 = re.findall(r'<div>(\d)</div>', html, flags=re.I)
print(r2)  # 返回['1', '2', '3']

# 替换
r3 = re.sub(r'<div>\d</div>', '#', html)
print(r3)  # 返回<html><body>###</body></html>

# 采用预编译的方式，search为查找字符串中是否有匹配的序列，match为字符串开头是否匹配
pattern = re.compile(r'<html>', flags=0)
r4 = pattern.match(html)
print(r4.group(0))  # 返回<html>
